
package com.ktgj.common.spring.entity.iata.iata_servicelistrq;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;


/**
 * <p>FareCriteriaType complex type的 Java 类。
 * 
 * <p>以下模式片段指定包含在此类中的预期内容。
 * 
 * <pre>
 * &lt;complexType name="FareCriteriaType"&gt;
 *   &lt;complexContent&gt;
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *       &lt;sequence&gt;
 *         &lt;element name="FareBasisCode" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="FareTypeCode" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="GroupFareCriteria" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_ServiceListRQ}GroupFareCriteriaType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="NoAdvancePurchaseInd" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt;
 *         &lt;element name="NoMaxStayInd" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt;
 *         &lt;element name="NoMinStayInd" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt;
 *         &lt;element name="NoPenaltyInd" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt;
 *         &lt;element name="PrefLevel" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_ServiceListRQ}PrefLevelType" minOccurs="0"/&gt;
 *       &lt;/sequence&gt;
 *     &lt;/restriction&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "FareCriteriaType", propOrder = {
    "fareBasisCode",
    "fareTypeCode",
    "groupFareCriteria",
    "noAdvancePurchaseInd",
    "noMaxStayInd",
    "noMinStayInd",
    "noPenaltyInd",
    "prefLevel"
})
public class FareCriteriaType {

    @XmlElement(name = "FareBasisCode")
    protected List<String> fareBasisCode;
    @XmlElement(name = "FareTypeCode")
    protected List<String> fareTypeCode;
    @XmlElement(name = "GroupFareCriteria")
    protected List<GroupFareCriteriaType> groupFareCriteria;
    @XmlElement(name = "NoAdvancePurchaseInd")
    protected Boolean noAdvancePurchaseInd;
    @XmlElement(name = "NoMaxStayInd")
    protected Boolean noMaxStayInd;
    @XmlElement(name = "NoMinStayInd")
    protected Boolean noMinStayInd;
    @XmlElement(name = "NoPenaltyInd")
    protected Boolean noPenaltyInd;
    @XmlElement(name = "PrefLevel")
    protected PrefLevelType prefLevel;

    /**
     * Gets the value of the fareBasisCode property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the fareBasisCode property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getFareBasisCode().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link String }
     * 
     * 
     */
    public List<String> getFareBasisCode() {
        if (fareBasisCode == null) {
            fareBasisCode = new ArrayList<String>();
        }
        return this.fareBasisCode;
    }

    /**
     * Gets the value of the fareTypeCode property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the fareTypeCode property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getFareTypeCode().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link String }
     * 
     * 
     */
    public List<String> getFareTypeCode() {
        if (fareTypeCode == null) {
            fareTypeCode = new ArrayList<String>();
        }
        return this.fareTypeCode;
    }

    /**
     * Gets the value of the groupFareCriteria property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the groupFareCriteria property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getGroupFareCriteria().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link GroupFareCriteriaType }
     * 
     * 
     */
    public List<GroupFareCriteriaType> getGroupFareCriteria() {
        if (groupFareCriteria == null) {
            groupFareCriteria = new ArrayList<GroupFareCriteriaType>();
        }
        return this.groupFareCriteria;
    }

    /**
     * 获取noAdvancePurchaseInd属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isNoAdvancePurchaseInd() {
        return noAdvancePurchaseInd;
    }

    /**
     * 设置noAdvancePurchaseInd属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setNoAdvancePurchaseInd(Boolean value) {
        this.noAdvancePurchaseInd = value;
    }

    /**
     * 获取noMaxStayInd属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isNoMaxStayInd() {
        return noMaxStayInd;
    }

    /**
     * 设置noMaxStayInd属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setNoMaxStayInd(Boolean value) {
        this.noMaxStayInd = value;
    }

    /**
     * 获取noMinStayInd属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isNoMinStayInd() {
        return noMinStayInd;
    }

    /**
     * 设置noMinStayInd属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setNoMinStayInd(Boolean value) {
        this.noMinStayInd = value;
    }

    /**
     * 获取noPenaltyInd属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isNoPenaltyInd() {
        return noPenaltyInd;
    }

    /**
     * 设置noPenaltyInd属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setNoPenaltyInd(Boolean value) {
        this.noPenaltyInd = value;
    }

    /**
     * 获取prefLevel属性的值。
     * 
     * @return
     *     possible object is
     *     {@link PrefLevelType }
     *     
     */
    public PrefLevelType getPrefLevel() {
        return prefLevel;
    }

    /**
     * 设置prefLevel属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link PrefLevelType }
     *     
     */
    public void setPrefLevel(PrefLevelType value) {
        this.prefLevel = value;
    }

}
